﻿using System.ComponentModel.DataAnnotations;
using Newtonsoft.Json;

namespace Fadada.FASC.SDK.DotNetCore.Model
{
    public class RespSignTemplateDetailInfo
    {
        /// <summary>
        /// 签署模板Id。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signTemplateId",
            Required = Required.Always)]
        public string SignTemplateId  { get; set; }

        /// <summary>
        /// 签署模板名称，长度最大100个字符。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signTemplateName",
            Required = Required.Always)]
        [MaxLength(100)]
        public string SignTemplateName { get; set; }

        /// <summary>
        /// 签署模板状态：
        /// invalid: 停用
        /// valid: 启用
        /// 停用的模板无法发起签署。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signTemplateStatus",
            Required = Required.Always)]
        public string SignTemplateStatus { get; set; }

        /// <summary>
        /// 文档列表，数组。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "docs",
            Required = Required.AllowNull)]
        public Docs[] Docs { get; set; }

        /// <summary>
        /// 填写是否有序：
        /// false: 无序填
        /// true: 有序填
        /// 默认为false。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "fillInOrder",
            Required = Required.AllowNull)]
        public bool FillInOrder { get; set; }

        /// <summary>
        /// 签署是否有序：
        /// false: 无序签
        /// true: 有序签
        /// 默认为false。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signInOrder",
            Required = Required.AllowNull)]
        public bool SignInOrder { get; set; }

        /// <summary>
        /// 填写参与方列表，数组。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "fillActors",
            Required = Required.AllowNull)]
        public FillActor[] FillActors { get; set; }

        /// <summary>
        /// 签署参与方列表，数组。
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "signActors",
            Required = Required.AllowNull)]
        public SignActor[] SignActors { get; set; }

        /// <summary>
        /// 附件列表，数组
        /// </summary>
        [JsonProperty(NullValueHandling = NullValueHandling.Ignore, PropertyName = "attachs",
            Required = Required.AllowNull)]
        public AttachInfo[] Attachs { get; set; }
    }
}